﻿//*** Guidance generated code ***//
using System;
using System.Collections.Generic;
using System.Diagnostics.Contracts;
using System.Linq;

namespace $safeprojectname$.Web
{
    /// <summary>
    ///     Data-containers needed for MasterPage
    /// </summary>
    public interface IMasterModel : ICoreModel
    {
        /// <summary>
        ///     The central button of application which submits the FORM with id="Constants.WebControls.MainFormId".
        ///     This main Form 'action' attribute is filled with the ButtonSubmit settings
        /// </summary>
        IButtonItem ButtonSubmit { get; set; }

        /// <summary>
        ///     DataSource for ButtonsWC.ascx
        /// </summary>
        IButtonsModel ButtonsModel { get; set; }

        /// <summary>
        ///     DataSource for ActionsWC.ascx
        /// </summary>
        IActionsModel ActionsModel { get; set; }

        /// <summary>
        ///     Current Controller name
        /// </summary>
        string ControllerName { get; set; }

        /// <summary>
        ///     Current Action name of current Controller
        /// </summary>
        string CurrentAction { get; set; }

        /// <summary>
        ///     Keeps the value of currently used MasterPage.
        ///     e.g. 'mv' for default master view;
        /// </summary>
        string CurrentMasterPageValue { get; set; }

        /// <summary>
        ///     Provides the BreadCrumb control description
        ///     (if null nor empty, CurrentAction should be used)
        /// </summary>
        string ActionDescription { get; set; }

        /// <summary>
        ///     Item Description allowes you to append some information
        ///     for Bread-Crumb control - about currently executed Action
        /// </summary>
        string ItemDescription { get; set; }

        /// <summary>
        ///     Common switch to inform, that Application is in Read-Only mode
        /// </summary>
        bool IsReadOnly { get; set; }
    }
}